package com.supply.dl.global;

import com.supply.dl.bean.LoginResponse;

import java.util.ArrayList;

/**
 * 类描述：　[全局常量类]<br/>
 * 项目名称：[supply]<br/>
 * 包名：　　[com.supply.dl.global]<br/>
 * 创建人：　[antao]<br/>
 * 创建时间：[2018/5/7 10:27]<br/>
 * 版本：　　[v2.1.0]<br/>
 */
public class Global {
    /**
     * 常量类实体
     */
    private static Global instance;
    /**
     * 是否已经登录的标志
     */
    public boolean isLogin = false;

    /**
     * 用户自己输入的HTPP访问地址（IP地址和端口号，如：192.168.2.15:8080）
     */
    public String httpAddress;

    /**
     * 存储的登录信息
     */
    private LoginResponse loginResult;
    private ArrayList<OnLoginOffListener> onLoginOffListeners = new ArrayList<OnLoginOffListener>();

    /**
     * 注销登录的接口
     */
    public interface OnLoginOffListener {
        void onLoginOff();
    }

    public static Global getInstance() {
        if (instance == null)
            synchronized (Global.class) {
                if (instance == null)
                    instance = new Global();
            }
        return instance;
    }

    public void setLoginResult(LoginResponse mLoginResult) {
        if (mLoginResult != null)
            isLogin = true;
        this.loginResult = mLoginResult;
    }

    public boolean isLogin() {
        return isLogin;
    }

    public String getToken() {
        if (loginResult == null)
            return "";
        return loginResult.getUserId()+"";
    }

    public void registerLoginOffListener(OnLoginOffListener onLoginOffListener) {
        if (!onLoginOffListeners.contains(onLoginOffListener)) {
            onLoginOffListeners.add(onLoginOffListener);
        }
    }

    public void unRegisterLoginOffListener(OnLoginOffListener onLoginOffListener) {
        if (onLoginOffListeners.contains(onLoginOffListener)) {
            onLoginOffListeners.remove(onLoginOffListener);
        }
    }

    /**
     * 通知注销事件
     */
    public void notifyLoginOff() {
        for (int i = 0; i < onLoginOffListeners.size(); i++) {
            OnLoginOffListener mOnLoginOffListener = onLoginOffListeners.get(i);
            if (mOnLoginOffListener != null)
                mOnLoginOffListener.onLoginOff();
        }
    }

    public void setHTTPAddress(String httpAddress){
        this.httpAddress=httpAddress;
    }

    public String getHttpAddress(){
        return this.httpAddress;
    }

}
